

package jumavidesktop.Otros.Pojos;

import java.io.File;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;

/**
 *
 * @author vimso
 */
public class parConfig {

    //<editor-fold defaultstate="collapsed" desc="Constantes">
    
    private static final String cUrlBBDD="cUrlBBDD";
    private static final String cUsuario="cUsuario";
    private static final String cClave="cClave";
    public  static final String cFichero="configuracion.properties";
    
    //</editor-fold>
    public String urlBBDD;
    public String usuario;
    public String clave;

    public String getUrlBBDD() {
        return urlBBDD;
    }

    public void setUrlBBDD(String urlBBDD) {
        this.urlBBDD = urlBBDD;
    }

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public String getClave() {
        return clave;
    }

    public void setClave(String clave) {
        this.clave = clave;
    }
    
    public MyRespuesta guardaConfig()
    {
        MyRespuesta resp=this.verificiarDatos(this);
        try {
            
            if(!resp.getTodoOK()) {
                return resp;
            }
            
            PropertiesConfiguration propconfig = new PropertiesConfiguration();
            
            propconfig.setProperty(parConfig.cUrlBBDD, this.getUrlBBDD());
            propconfig.setProperty(parConfig.cUsuario, this.getUsuario());
            propconfig.setProperty(parConfig.cClave, this.getClave());
            
            propconfig.save(new File(parConfig.cFichero));                
            
        } catch (ConfigurationException ex) {
            resp= new MyRespuesta("Imposible guardar la configuración");
        }
        finally
                {
                    return resp;
                }
    }
    
    public void cargarConfig()
    {
        try {
            PropertiesConfiguration propconfig = new PropertiesConfiguration(parConfig.cFichero);
            this.setClave(propconfig.getString(parConfig.cClave));
            this.setUrlBBDD(propconfig.getString(parConfig.cUrlBBDD));
            this.setUsuario(propconfig.getString(parConfig.cUsuario));            
            
        } catch (ConfigurationException ex) {
            
            //throw  new UnsupportedOperationException("catch, sin implementar");        
        }
    }
    
    
    
    public MyRespuesta verificiarDatos(parConfig parametros)
    {
        //no pueden ser nulos y el usuario y url del servidor no puede estar vacion
        if(parametros.getUrlBBDD().isEmpty()) {
            return new MyRespuesta("Debes indicar la dirección del servidor de la base de datos");
        }
        if(parametros.getUsuario().isEmpty()) {
            return new MyRespuesta("Debes indicar el usuario de la base de datos");
        }
        return new MyRespuesta(); //todo ok
        
    }
    
}
